package com.skzh.common.core.domain.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.skzh.common.annotation.Excel;
import com.skzh.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 飞手信息对象 pilot_info
 *
 * @author skzh
 * @date 2024-06-24
 */
@Data
public class PilotInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    private Long id;

    /**
     * 姓名
     */
    @Excel(name = "姓名")
    private String name;

    /**
     * 身份证号
     */
    @Excel(name = "身份证号")
    private String idNumber;

    /**
     * 出生日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthDate;

    /**
     * 居住地
     */
    @Excel(name = "居住地")
    private String residence;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    private String phoneNumber;

    /**
     * 证书取得日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "证书取得日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date certificateDate;

    /**
     * 证书类型
     */
    @Excel(name = "证书类型")
    private String certificateType;

    /**
     * 证书等级
     */
    @Excel(name = "证书等级")
    private String certificateLevel;

    /**
     * 从业时间（年）
     */
    @Excel(name = "从业时间")
    private String experience;



    /**
     * 所属地区
     */
    @Excel(name = "所属地区")
    private String region;

    /**
     * 在职状态（00：储备，01：兼职，02：在职）
     */
    @Excel(name = "在职状态", readConverterExp = "0=储备,1=兼职,2=在职")
    private String employmentStatus;

    /**
     * 飞手照片
     */
    @Excel(name = "飞手照片")
    private String photo;

    /**
     * 证书图片
     */
    @Excel(name = "证书图片")
    private String certificateImage;

    /**
     * 数据来源
     */
    @Excel(name = "数据来源",readConverterExp = "0=手动输入,1=导入,2=导入-有修改")
    private String dataSource;

    @Excel(name = "账号")
    private String accountNumber;

    @Excel(name = "密码")
    private String password;





    //@Excel(name = "是否删除")
    private String isDelete;






    public PilotInfo(String accountNumber, String password) {
        this.accountNumber = accountNumber; 
        this.password = password;
    }
    public PilotInfo() {}

    public PilotInfo(Long id, String name, String idNumber, Date birthDate, String residence, String phoneNumber, Date certificateDate, String certificateType, String certificateLevel, String experience, String region, String employmentStatus, String photo, String certificateImage, String dataSource, String accountNumber, String password) {
        this.id = id;
        this.name = name;
        this.idNumber = idNumber;
        this.birthDate = birthDate;
        this.residence = residence;
        this.phoneNumber = phoneNumber;
        this.certificateDate = certificateDate;
        this.certificateType = certificateType;
        this.certificateLevel = certificateLevel;
        this.experience = experience;
        this.region = region;
        this.employmentStatus = employmentStatus;
        this.photo = photo;
        this.certificateImage = certificateImage;
        this.dataSource = dataSource;
        this.accountNumber = accountNumber;
        this.password = password;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setIdNumber(String idNumber) {
        this.idNumber = idNumber;
    }

    public String getIdNumber() {
        return idNumber;
    }

    public void setBirthDate(Date birthDate) {
        this.birthDate = birthDate;
    }

    public Date getBirthDate() {
        return birthDate;
    }

    public void setResidence(String residence) {
        this.residence = residence;
    }

    public String getResidence() {
        return residence;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setCertificateDate(Date certificateDate) {
        this.certificateDate = certificateDate;
    }

    public Date getCertificateDate() {
        return certificateDate;
    }

    public void setCertificateType(String certificateType) {
        this.certificateType = certificateType;
    }

    public String getCertificateType() {
        return certificateType;
    }

    public void setCertificateLevel(String certificateLevel) {
        this.certificateLevel = certificateLevel;
    }

    public String getCertificateLevel() {
        return certificateLevel;
    }

    public String getExperience() {
        return experience;
    }

    public void setExperience(String experience) {
        this.experience = experience;
    }

    public void setRegion(String region) {
        this.region = region;
    }

    public String getRegion() {
        return region;
    }

    public void setEmploymentStatus(String employmentStatus) {
        this.employmentStatus = employmentStatus;
    }

    public String getEmploymentStatus() {
        return employmentStatus;
    }

    public String getAccountNumber() {
        return accountNumber;
    }

    public void setAccountNumber(String accountNumber) {
        this.accountNumber = accountNumber;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void setPhoto(String photo) {
        this.photo = photo;
    }

    public String getPhoto() {
        return photo;
    }

    public void setCertificateImage(String certificateImage) {
        this.certificateImage = certificateImage;
    }

    public String getCertificateImage() {
        return certificateImage;
    }

    public void setDataSource(String dataSource) {
        this.dataSource = dataSource;
    }

    public String getDataSource() {
        return dataSource;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("name", getName())
                .append("idNumber", getIdNumber())
                .append("birthDate", getBirthDate())
                .append("residence", getResidence())
                .append("phoneNumber", getPhoneNumber())
                .append("certificateDate", getCertificateDate())
                .append("certificateType", getCertificateType())
                .append("certificateLevel", getCertificateLevel())
                .append("experience", getExperience())
                .append("region", getRegion())
                .append("employmentStatus", getEmploymentStatus())
                .append("photo", getPhoto())
                .append("certificateImage", getCertificateImage())
                .append("dataSource", getDataSource())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
